package org.lanqiao.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CostExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CostExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCidIsNull() {
            addCriterion("cid is null");
            return (Criteria) this;
        }

        public Criteria andCidIsNotNull() {
            addCriterion("cid is not null");
            return (Criteria) this;
        }

        public Criteria andCidEqualTo(Integer value) {
            addCriterion("cid =", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotEqualTo(Integer value) {
            addCriterion("cid <>", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidGreaterThan(Integer value) {
            addCriterion("cid >", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidGreaterThanOrEqualTo(Integer value) {
            addCriterion("cid >=", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidLessThan(Integer value) {
            addCriterion("cid <", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidLessThanOrEqualTo(Integer value) {
            addCriterion("cid <=", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidIn(List<Integer> values) {
            addCriterion("cid in", values, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotIn(List<Integer> values) {
            addCriterion("cid not in", values, "cid");
            return (Criteria) this;
        }

        public Criteria andCidBetween(Integer value1, Integer value2) {
            addCriterion("cid between", value1, value2, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotBetween(Integer value1, Integer value2) {
            addCriterion("cid not between", value1, value2, "cid");
            return (Criteria) this;
        }

        public Criteria andCnameIsNull() {
            addCriterion("cname is null");
            return (Criteria) this;
        }

        public Criteria andCnameIsNotNull() {
            addCriterion("cname is not null");
            return (Criteria) this;
        }

        public Criteria andCnameEqualTo(String value) {
            addCriterion("cname =", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotEqualTo(String value) {
            addCriterion("cname <>", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameGreaterThan(String value) {
            addCriterion("cname >", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameGreaterThanOrEqualTo(String value) {
            addCriterion("cname >=", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLessThan(String value) {
            addCriterion("cname <", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLessThanOrEqualTo(String value) {
            addCriterion("cname <=", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLike(String value) {
            addCriterion("cname like", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotLike(String value) {
            addCriterion("cname not like", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameIn(List<String> values) {
            addCriterion("cname in", values, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotIn(List<String> values) {
            addCriterion("cname not in", values, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameBetween(String value1, String value2) {
            addCriterion("cname between", value1, value2, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotBetween(String value1, String value2) {
            addCriterion("cname not between", value1, value2, "cname");
            return (Criteria) this;
        }

        public Criteria andCbasetimeIsNull() {
            addCriterion("cbasetime is null");
            return (Criteria) this;
        }

        public Criteria andCbasetimeIsNotNull() {
            addCriterion("cbasetime is not null");
            return (Criteria) this;
        }

        public Criteria andCbasetimeEqualTo(Integer value) {
            addCriterion("cbasetime =", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeNotEqualTo(Integer value) {
            addCriterion("cbasetime <>", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeGreaterThan(Integer value) {
            addCriterion("cbasetime >", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("cbasetime >=", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeLessThan(Integer value) {
            addCriterion("cbasetime <", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeLessThanOrEqualTo(Integer value) {
            addCriterion("cbasetime <=", value, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeIn(List<Integer> values) {
            addCriterion("cbasetime in", values, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeNotIn(List<Integer> values) {
            addCriterion("cbasetime not in", values, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeBetween(Integer value1, Integer value2) {
            addCriterion("cbasetime between", value1, value2, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasetimeNotBetween(Integer value1, Integer value2) {
            addCriterion("cbasetime not between", value1, value2, "cbasetime");
            return (Criteria) this;
        }

        public Criteria andCbasecostIsNull() {
            addCriterion("cbasecost is null");
            return (Criteria) this;
        }

        public Criteria andCbasecostIsNotNull() {
            addCriterion("cbasecost is not null");
            return (Criteria) this;
        }

        public Criteria andCbasecostEqualTo(Double value) {
            addCriterion("cbasecost =", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostNotEqualTo(Double value) {
            addCriterion("cbasecost <>", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostGreaterThan(Double value) {
            addCriterion("cbasecost >", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostGreaterThanOrEqualTo(Double value) {
            addCriterion("cbasecost >=", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostLessThan(Double value) {
            addCriterion("cbasecost <", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostLessThanOrEqualTo(Double value) {
            addCriterion("cbasecost <=", value, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostIn(List<Double> values) {
            addCriterion("cbasecost in", values, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostNotIn(List<Double> values) {
            addCriterion("cbasecost not in", values, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostBetween(Double value1, Double value2) {
            addCriterion("cbasecost between", value1, value2, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCbasecostNotBetween(Double value1, Double value2) {
            addCriterion("cbasecost not between", value1, value2, "cbasecost");
            return (Criteria) this;
        }

        public Criteria andCunitcostIsNull() {
            addCriterion("cunitcost is null");
            return (Criteria) this;
        }

        public Criteria andCunitcostIsNotNull() {
            addCriterion("cunitcost is not null");
            return (Criteria) this;
        }

        public Criteria andCunitcostEqualTo(Double value) {
            addCriterion("cunitcost =", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostNotEqualTo(Double value) {
            addCriterion("cunitcost <>", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostGreaterThan(Double value) {
            addCriterion("cunitcost >", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostGreaterThanOrEqualTo(Double value) {
            addCriterion("cunitcost >=", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostLessThan(Double value) {
            addCriterion("cunitcost <", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostLessThanOrEqualTo(Double value) {
            addCriterion("cunitcost <=", value, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostIn(List<Double> values) {
            addCriterion("cunitcost in", values, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostNotIn(List<Double> values) {
            addCriterion("cunitcost not in", values, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostBetween(Double value1, Double value2) {
            addCriterion("cunitcost between", value1, value2, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCunitcostNotBetween(Double value1, Double value2) {
            addCriterion("cunitcost not between", value1, value2, "cunitcost");
            return (Criteria) this;
        }

        public Criteria andCstatusIsNull() {
            addCriterion("cstatus is null");
            return (Criteria) this;
        }

        public Criteria andCstatusIsNotNull() {
            addCriterion("cstatus is not null");
            return (Criteria) this;
        }

        public Criteria andCstatusEqualTo(String value) {
            addCriterion("cstatus =", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusNotEqualTo(String value) {
            addCriterion("cstatus <>", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusGreaterThan(String value) {
            addCriterion("cstatus >", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusGreaterThanOrEqualTo(String value) {
            addCriterion("cstatus >=", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusLessThan(String value) {
            addCriterion("cstatus <", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusLessThanOrEqualTo(String value) {
            addCriterion("cstatus <=", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusLike(String value) {
            addCriterion("cstatus like", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusNotLike(String value) {
            addCriterion("cstatus not like", value, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusIn(List<String> values) {
            addCriterion("cstatus in", values, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusNotIn(List<String> values) {
            addCriterion("cstatus not in", values, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusBetween(String value1, String value2) {
            addCriterion("cstatus between", value1, value2, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCstatusNotBetween(String value1, String value2) {
            addCriterion("cstatus not between", value1, value2, "cstatus");
            return (Criteria) this;
        }

        public Criteria andCdescrIsNull() {
            addCriterion("cdescr is null");
            return (Criteria) this;
        }

        public Criteria andCdescrIsNotNull() {
            addCriterion("cdescr is not null");
            return (Criteria) this;
        }

        public Criteria andCdescrEqualTo(String value) {
            addCriterion("cdescr =", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrNotEqualTo(String value) {
            addCriterion("cdescr <>", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrGreaterThan(String value) {
            addCriterion("cdescr >", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrGreaterThanOrEqualTo(String value) {
            addCriterion("cdescr >=", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrLessThan(String value) {
            addCriterion("cdescr <", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrLessThanOrEqualTo(String value) {
            addCriterion("cdescr <=", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrLike(String value) {
            addCriterion("cdescr like", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrNotLike(String value) {
            addCriterion("cdescr not like", value, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrIn(List<String> values) {
            addCriterion("cdescr in", values, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrNotIn(List<String> values) {
            addCriterion("cdescr not in", values, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrBetween(String value1, String value2) {
            addCriterion("cdescr between", value1, value2, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCdescrNotBetween(String value1, String value2) {
            addCriterion("cdescr not between", value1, value2, "cdescr");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeIsNull() {
            addCriterion("ccreatetime is null");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeIsNotNull() {
            addCriterion("ccreatetime is not null");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeEqualTo(Date value) {
            addCriterion("ccreatetime =", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeNotEqualTo(Date value) {
            addCriterion("ccreatetime <>", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeGreaterThan(Date value) {
            addCriterion("ccreatetime >", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("ccreatetime >=", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeLessThan(Date value) {
            addCriterion("ccreatetime <", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("ccreatetime <=", value, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeIn(List<Date> values) {
            addCriterion("ccreatetime in", values, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeNotIn(List<Date> values) {
            addCriterion("ccreatetime not in", values, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeBetween(Date value1, Date value2) {
            addCriterion("ccreatetime between", value1, value2, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCcreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("ccreatetime not between", value1, value2, "ccreatetime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeIsNull() {
            addCriterion("cstarttime is null");
            return (Criteria) this;
        }

        public Criteria andCstarttimeIsNotNull() {
            addCriterion("cstarttime is not null");
            return (Criteria) this;
        }

        public Criteria andCstarttimeEqualTo(Date value) {
            addCriterion("cstarttime =", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeNotEqualTo(Date value) {
            addCriterion("cstarttime <>", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeGreaterThan(Date value) {
            addCriterion("cstarttime >", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("cstarttime >=", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeLessThan(Date value) {
            addCriterion("cstarttime <", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeLessThanOrEqualTo(Date value) {
            addCriterion("cstarttime <=", value, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeIn(List<Date> values) {
            addCriterion("cstarttime in", values, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeNotIn(List<Date> values) {
            addCriterion("cstarttime not in", values, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeBetween(Date value1, Date value2) {
            addCriterion("cstarttime between", value1, value2, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCstarttimeNotBetween(Date value1, Date value2) {
            addCriterion("cstarttime not between", value1, value2, "cstarttime");
            return (Criteria) this;
        }

        public Criteria andCcosttypeIsNull() {
            addCriterion("ccosttype is null");
            return (Criteria) this;
        }

        public Criteria andCcosttypeIsNotNull() {
            addCriterion("ccosttype is not null");
            return (Criteria) this;
        }

        public Criteria andCcosttypeEqualTo(String value) {
            addCriterion("ccosttype =", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeNotEqualTo(String value) {
            addCriterion("ccosttype <>", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeGreaterThan(String value) {
            addCriterion("ccosttype >", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeGreaterThanOrEqualTo(String value) {
            addCriterion("ccosttype >=", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeLessThan(String value) {
            addCriterion("ccosttype <", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeLessThanOrEqualTo(String value) {
            addCriterion("ccosttype <=", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeLike(String value) {
            addCriterion("ccosttype like", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeNotLike(String value) {
            addCriterion("ccosttype not like", value, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeIn(List<String> values) {
            addCriterion("ccosttype in", values, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeNotIn(List<String> values) {
            addCriterion("ccosttype not in", values, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeBetween(String value1, String value2) {
            addCriterion("ccosttype between", value1, value2, "ccosttype");
            return (Criteria) this;
        }

        public Criteria andCcosttypeNotBetween(String value1, String value2) {
            addCriterion("ccosttype not between", value1, value2, "ccosttype");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}